12/02/90 Modified the COM routines so that all local data is contained in the Code Segment of the GAPCOM module instead of the default Data Segment. This will eliminate the problem some programmers were having with their doors in that the door could only be run once (under DesqView). On any subsequent runs, all incomming data from the remote caller was being vectored to some unknown interrupt handler, instead of GAPQBDR's own handler. Hopefully, this will also eliminate the lock up problems some were having when their door exits back to the BBS system. 12/01/90 Modified the timecredit variable so that it is no longer initialized with the timecredits as written to DOOR.SYS. When writing DOOR.SYS, GAP writes the actual time remaining and this time includes any timecredits the caller may have. However, when figuring time left, GAPQBDR takes into consideration the time credits, so if a caller had 10 minutes left and -10 time credits (in GAP), the door program would log the caller off for lack of time. You may still use the timecredit variable as before, however if you intend to update DOOR.SYS with any timecredits given or taken away from the caller, you must add your timecredits to a new variable called realcredit before updating DOOR.SYS. Realcredit contains the actual BBS timecredits. It is not used in figuring time left for a caller while in the door, since the BBS program is supposed to write the actual time left to DOOR.SYS. 07/08/90 GAPQBDR has been updated so that it now reads the new fields in DOOR.SYS. In addition, in a PCB system, the 3 files, PCBOARD.DAT, PCBOARD.SYS, and USERS are no longer read. Instead, GAPQBDR will read the DOOR.SYS file that PCB now writes to obtain the information required to operate. The following variables have been declared and are available for use. These variables are read from some of the new fields in DOOR.SYS: COMMON SHARED dflt.color AS INTEGER ' BBS default color COMMON SHARED maxfiles AS INTEGER ' Max files available COMMON SHARED curfiles AS INTEGER ' Current files downloaded COMMON SHARED doors.open AS LONG ' Total doors opened COMMON SHARED mesleft AS LONG ' Total messages left COMMON SHARED downbytes AS LONG; ' total download bytes COMMON SHARED handle AS STRING ' caller's Handle COMMON SHARED event.time AS STRING ' event run time COMMON SHARED last.new AS STRING ' last new files scan GAPQBDR is now compatible with BASIC 7. This required but a very minor change to one of the functions. However, it was a frustating time, to say the least. In our 'C' programming, we use the Alternate Math Library as this results in a 10k decrease in CODE size. So, we set out to install BASIC 7 using the Alternate Math Library. To utilize this library, you compile your modules using the /FPa switch. Everything compiles just fine, but when trying to create the GAPQBDR Quick Library, the Linker complains of "unresolved external references". After many frustrating hours, we decided to install BASIC 7 with the Emulator Library (the default). This Math Library works just fine and so we will just leave it at that and not attempt to waste any more time trying to determine why the Alternate Math Library does not work. There are two ZIP files contained within GAPQBDR that contain the actual LIB and QLB files. One is for BASIC 7 (or QBX) and the other is for QB 4.5. NOTE (09/02/90): The Quick Library for BASIC 7 has been removed from GAPQBDR. It seems that the only way to create a 'workable' QLB for QBX is to use /Fs (far strings). This will create a GAPQBDR.QLB that QBX can load, but your programs will not work correctly. GAPQBDR was not written to take advantage of any so called "features" of BASIC 7 (Far Strings being one of them), so if you use BASIC 7, you will need to do your compiling using BC. 12/16/89 Updated the GAPDOS record structure to be compatible with the current version of GAP. Fixed a problem with dropped carriers and PCB. 10/01/89 Changes to your source file: If you called previously undocumented GAPQBDR routines, you will need to include GAPQBSRC.BI right after GAPQBDR.BI. Previously undocumented functions are now fully referenced in the printed manual. GAPQBSRC.BI contains the function declarations for these routines as well as declarations for the private variables. If you receive a "Sub Program Not Defined" or an unresolved external reference, you probably need to include GAPQBSRC.BI. The error handler is now part of your source modules. It is in GAPQBERR.BI and MUST be included AFTER any declarations but BEFORE any basic statments. ' $INCLUDE: 'gapqberr.bi' In other words, it is in included after any variable declarations and before any executible statments. Note that A$ = "This is a sting" is a statment and not a variable declaration. Because the error handler is now a part of your program, you must use the /x switch when compiling your source module. Please refer to the EXAMPLE.BAS program for more information as to how the error handler is included in your programs. A number of new routines were added to this release. These new functions (as well as descriptions of previously undocumented routines) are fully referenced in the printed manual. This release of GAPQBDR requires that the GAP system be at version 4.3 or higher. New fields were added to DOOR.SYS and only GAP versions at or above 4.3 are able to write them. Your previously compiled doors will continue to operate normally. This change affects only newly compiled programs. If you licensed the source code, there is additional information contained within SRCREAD.ME. In addition, you will find that the source modules were broken up into smaller pieces and that most of the private routines are now provided. 08/28/89 GAPQBDR now utilizes all new communications routines. It is no longer dependant upon QB to handle communications I/O. What this means to you, the programmer, is that you no longer need worry about your end users having a DTR patched version of BRUN45.EXE. In addition, those "device time out" and "bad file number" errors QB gives us when it has problems with the COM port are eliminated. The communications routines are written in assembler for speed and compactness. They are capable of handling any com port you have set up, however we have limited them to COM 1 - COM 4. They support speeds to 38.4k, and will automatically use the 16550 FIFO buffer if that chip is installed. Because of these modifications, you will need to make changes to your source code if you accessed the com port directly or through file #9. The communications routines are documented in the printed manual only. It is of vital importance that you exit your door via the leave function. Failure to do so will leave communications interrupts active which will cause your computer to lock up at some point. The GAPQBDR environment variable is no longer used to specify that the BBS is a PCB system. Instead, line 3 of the door configuration file is used for this purpose. On line 3 of that file, enter (or have your end users enter) a 1 if the BBS is PCB, or 0 for a GAP system. The default is still GAP mode so if anything other than a 1 is found on line 3 of the configuration file, GAPQBDR will assume the BBS is GAP. Any options you may need for a particular door will begin on line 4.